home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Art / P / PhotoShopDev.cpt / PhotoShopDev / Exp-Think C 4.0 / ExportInterface.h < prev   
Text File  |  1990-02-06  |  3KB  |  87 lines

  1. /*
  2.     File: ExportInterface.h
  3.  
  4.     Copyright 1990 by Thomas Knoll.
  5.  
  6.     This file describes version 3 of Photoshop's Export module interface.
  7. */
  8.  
  9. /* Operation selectors */
  10.  
  11. #define exportSelectorAbout    0
  12. #define exportSelectorStart    1
  13. #define exportSelectorContinue 2
  14. #define exportSelectorFinish   3
  15. #define exportSelectorPrepare  4
  16.  
  17. /* Image modes */
  18.  
  19. #define exportModeBitmap       0
  20. #define exportModeGrayScale    1
  21. #define exportModeIndexedColor 2
  22. #define exportModeRGBColor       3
  23. #define exportModeCMYKColor    4
  24. #define exportModeHSLColor       5
  25. #define exportModeHSBColor       6
  26. #define exportModeMultichannel 7
  27.  
  28. /* Error return values. The plug-in module may also return standard Macintosh
  29.    operating system error codes, or report its own errors, in which case it
  30.    can return any positive integer. */
  31.  
  32. #define exportBadParameters    -30200    /* "a problem with the export module interface" */
  33. #define exportBadMode        -30201    /* "the export module does not support <mode> images" */
  34.  
  35. typedef unsigned char ExportLUT [256];
  36.  
  37. typedef struct ExportRecord {
  38.  
  39.     long        serialNumber;        /* Photoshop's serial number, to allow
  40.                                        copy protected plug-in modules. */
  41.     ProcPtr     abortProc;            /* The plug-in module may call this no-argument
  42.                                        BOOLEAN function (using Pascal calling
  43.                                        conventions) several times a second during long
  44.                                        operations to allow the user to abort the operation.
  45.                                        If it returns TRUE, the operation should be aborted
  46.                                        (and a positive error code returned). */
  47.     ProcPtr     progressProc;        /* The plug-in module may call this two-argument
  48.                                        procedure (using Pascal calling conventions)
  49.                                        periodically to update a progress indicator.
  50.                                        The first parameter (type LONGINT) is the number
  51.                                        of operations completed; the second (type LONGINT)
  52.                                        is the total number of operations. */
  53.  
  54.     long        maxData;            /* Maximum number of bytes that should be
  55.                                        requested at once (the plug-in should reduce
  56.                                        its requests by the size any large buffers
  57.                                        it allocates). The plug-in may reduce this
  58.                                        value in the exportSelectorPrepare routine. */
  59.  
  60.     short        imageMode;            /* Image mode */
  61.     Point        imageSize;            /* Size of image */
  62.     short        depth;                /* Bits per sample, currently will be 1 or 8 */
  63.     short        planes;             /* Samples per pixel */
  64.     Fixed        imageHRes;            /* Pixels per inch */
  65.     Fixed        imageVRes;            /* Pixels per inch */
  66.     ExportLUT    redLUT;             /* Red LUT, only used for Indexed Color images */
  67.     ExportLUT    greenLUT;            /* Green LUT, only used for Indexed Color images */
  68.     ExportLUT    blueLUT;            /* Blue LUT, only used for Indexed Color images */
  69.  
  70.     Rect        theRect;            /* Rectangle requested, set to empty rect when done */
  71.     short        loPlane;            /* First plane requested */
  72.     short        hiPlane;            /* Last plane requested */
  73.  
  74.     Ptr            data;                /* A pointer to the requested image data */
  75.     long        rowBytes;            /* Spacing between rows */
  76.  
  77.     Str255        filename;             /* Document file name */
  78.     short        vRefNum;            /* Volume reference number, or zero if none */
  79.     Boolean        dirty;                /* Changes since last saved flag. The plug-in may clear
  80.                                        this field to prevent prompting the user when
  81.                                        closing the document. */
  82.  
  83.     Rect        selectBBox;            /* Bounding box of current selection, or an empty
  84.                                        rect if there is no current selection. */
  85.  
  86.     } ExportRecord, *ExportRecordPtr;
  87.